all:
	mpicc -o diffusion_par_bande_v1 diffusion_par_bande_v1.c
	mpicc -o diffusion_par_bande_v2 diffusion_par_bande_v2.c
	mpicc -o diffusion_par_bande_v3 diffusion_par_bande_v3.c
	mpicc -fopenmp -o diffusion_par_bande_v4 diffusion_par_bande_v4.c
	mpicc -o diffusion_par_bloc_v1 diffusion_par_bloc_v1.c
	mpicc -o diffusion_sequentiel diffusion_sequentiel.c
	mpicc -o diffusion_sequentiel_opti diffusion_sequentiel_opti.c
	
clean:
	rm diffusion_par_bande_v1 diffusion_sequentiel

exec:
	rm results_*;
	./diffusion_sequentiel;
	mpirun -x OMP_NUM_THREADS=2 -n 9 diffusion_par_bloc_v1;
	cat results_bloc_p0 results_bloc_p3 results_bloc_p6 results_bloc_p8 results_bloc_p1 results_bloc_p4 results_bloc_p7 results_bloc_p2 results_bloc_p5 results_bloc_p8 > results_bloc;
	diff results_seq results_bloc;
